// 定义公共响应体
export interface CommonData<T> {
    code: number,
    data: T,
    msg: string
}

// 定义获取所有项目名称的响应参数类型
export interface getAllProjectNameListData {
    code: number,
    data: [
        {
            itemName: string, // 项目名称
            requirements: null,
            itemTests: null,
            itemFunctions: null,
            itemCase: null,
            itemWikis: null,
            ItemManagerId: number,
            ID: number, // 项目ID
            createAt: string,
            UpdatedAt: string,
        }
    ],
    msg: string
};

// 定义获取所有需求类型的响应参数类型
export interface getRequirementTypesData {
    code: number,
    data: [
        {
            requirementType: string,
            requirementTypeColor: string,
            userName: string,
            itemRequirements: null,
            ID: number,
            createAt: string,
            UpdatedAt: string,
        }
    ],
    msg: string
}

// 定义根据权限获取人员信息的响应参数类型
export interface getRoleUser {
    nickName: string,
    headerImg: string,
    uuid: string,
    authorityId: number,
    userWxId: number
}

// 定义获取未分配需求响应体类型
export interface getInitRequirementData {
    code: number,
    data: {
        requirements: [{
            ID: number,
            requirementCreateName: string,
            requirementBossNameUUID: string,
            requirementName: string,
            createAt: string,
            onlineTime: string | null,
            onlineTimeP: string | null,

        }] | null,
        avgRequirementNum: number,
        notAvgRequirementNum: number,
        closeAvgRequirementNum: number
    },
    msg: string
}

// 定义获取所有需求状态等信息的请求体类型
export interface postPvPRequirementForm {
    projectTitle: string,
    isClose: number,
    beginTime: string | null,
    endTime: string | null
}

// 定义获取所有需求状态等信息的响应体类型
export interface postPvPRequirementData {
    itemRequirementId: number,
    itemRequirement: {
        trueTestName: string,
        requirementRelevances: string,
        requirementCreateName: string,
        requirementBossName: string,
        requirementName: string,
        onlineTime: string | null,
        onlineTimeP: string | null
    },
    userName: string,
    userUUID: string,
    requirmentChildStatus: number,
    ID: number,
    createAt: string,
    UpdatedAt: string
};

// 定义上传附件后调用的请求参数类型
export interface putUploadRequriementForm {
    itemRequirementId: number,
    fileType: number,
    draftPath: null | string,
    summaryPath: null | string,
    detailedPath: null | string,
    meetingPath: null | string,
    onLineMeetingPath: null | string
}

// 判断是否需求测试参与及评论/评分请求参数类型
export interface putUpdateGetTestForm {
    itemRequirementId: null | number,
    isGetTest: number ,
    itemRequirementPMTip: string,
    itemRequirementPMNumber: number,
    itemRequirementProjectPMTip: string,
    itemRequirementProjectPMNumber: number
};


